$( document ).ready(function() {

	if ($("#index").size() != 0) {

	$(document).on('click', '#buttonOublie', function() {
		$('#formLogin').hide();
		$('#buttonOublie').hide();
		$("#inputMatricule").val("");
        $("#inputPassword").val("");
		$('#pageLogin').append('<form id="formOublie" role="form"><br><br><br><span id="logo"><img class="img-responsive center-block"  alt=""  style="width: 60%; height: 60%; " src="images/logo.png" align="middle"></span><input type="matricule" id="inputMatriculeOublie" name="inputMatriculeOublie" class="form-control" placeholder="Matricule" required autofocus><br><button id="buttonSendMail" class="btn btn-lg btn-primary btn-block space" type="submit">Envoyer</button></form>');
	});

	 $(document).on('click', '#buttonConnexion', function() { // catch the form's submit event
        if ($('#inputMatricule').val().length > 0 && $('#inputPassword').val().length > 0) {
            $('#errorMessage').remove();
			$('#successMessage').remove();
			ajaxLogin();
        } 
        return false; // cancel original event to prevent form submitting
    });
	
	$(document).on('click', '#buttonSendMail', function() { // catch the form's submit event
        if ($('#inputMatriculeOublie').val().length > 0) {
            $('#errorMessage').remove();
			$('#successMessage').remove();
			
			ajaxGetPassword();
        } 
        return false; // cancel original event to prevent form submitting
    });
	}
	
	if ($("#choix").size() != 0) {
		$('#boutonSauverChoix').hide();
		$('#options').hide();
		$('#optionnels').hide();
		$("#erasmusOui,#erasmusNon").attr('disabled', true);
		ajaxGetChoix();
		
		$(document).on('click','#boutonSauverChoix' , function(){
			$('#errorMessage').remove();
			$('#successMessage').remove();
			ajaxPersistChoix();
		});
	}
	
});

function ajaxLogin(){
		$.ajax({
            url: "http://localhost:8080/ieco/api.html",
            type: "post",
            data: {operation : "login",inputMatricule : $('#inputMatricule').val(), inputPassword : $('#inputPassword').val()},
            dataType: "json",
            accepts: {
                "json": "application/json"
            },
            async: true
        })
        .success(function(response) {
			if(response.success){
				if(response.message=="prof"){
					window.location = "http://localhost:8080/ieco/crudOption.html";
				} else {
					window.location = "http://localhost:8080/ieco/choix.html";
				}
			} else {
				$('#buttonConnexion').before('<p id="errorMessage" class="bg-danger">'+response.message+'</p>');	
			}
				
        })
        .error(function(request, error) {
            $('#buttonConnexion').before('<p id="errorMessage" class="bg-danger">Le serveur iEco est indisponible.</p>');
        });
}

function ajaxGetPassword(){
	$.ajax({
            url: "http://localhost:8080/ieco/api.html",
            type: "post",
            data: {operation : "getPasswordByMail",inputMatriculeOublie : $('#inputMatriculeOublie').val()},
            dataType: "json",
            accepts: {
                "json": "application/json"
            },
            async: true
        })
        .success(function(response) {
			if(response.success){
				$('#buttonConnexion').before('<p id="successMessage" class="bg-success">Votre mot de passe vous a été envoyé sur votre adresse mail.</p>');
			} else {
				$('#buttonConnexion').before('<p id="errorMessage" class="bg-danger">L\'opération a échouée.</p>');
			}
			$('#formLogin').show();
			$('#buttonOublie').show();
			$('#formOublie').remove();
        })
        .error(function(request, error) {
            $('#buttonConnexion').before('<p id="errorMessage" class="bg-danger">Le serveur iEco est indisponible.</p>');
        });
}

function ajaxGetChoix(){
	$.ajax({
            url: "http://localhost:8080/ieco/api.html",
            type: "get",
            data: {operation : "getChoix"},
            dataType: "json",
            accepts: {
                "json": "application/json"
            },
            async: true
        })
        .success(function(response) {
        	$.each(response.options, function(key, option) {
  				$('#options').append('<li id="'+option.id+'" class="list-group-item">'+option.code+'</li>');
			});
			
			$.each(response.optionnels, function(key, optionnel) {
  				
  				if(response.mesOptionnels[key] == true){
  					$('#optionnels').append('<li id="'+optionnel.id+'" class="list-group-item selectedCoursOptionnel">'+optionnel.code+'</li>');
  				} else {
  					$('#optionnels').append('<li id="'+optionnel.id+'" class="list-group-item">'+optionnel.code+'</li>');
  				}
			});
			if(!response.dateFinAtteinte){
				$('#boutonSauverChoix').show();
				$( "#options" ).sortable();
				$( "#options" ).disableSelection();
				$( "#optionnels li" ).click(function() {
					$( this ).toggleClass( "selectedCoursOptionnel" );
				});
				$(document).on('click', '#erasmusNon', function() {
					$('#errorMessage').remove();
					$('#successMessage').remove();
					$('#options').show();
					$('#optionnels').show();
				});
	
				$(document).on('click', '#erasmusOui', function() {
					$('#options').hide();
					$('#optionnels').hide();
				});
				$("#erasmusOui,#erasmusNon").attr('disabled', false);
			} else {
				$("#boutonSauverChoix").after('<p id="errorMessage" class="bg-danger">Les inscriptions sont terminées.</p>');
			}
			if(!response.estErasmus){
					$('#options').show();
					$('#optionnels').show();
					$('#erasmusNon').prop("checked", true);
			}

        })
        .error(function(request, error) {
            $('#buttonConnexion').before('<p id="errorMessage" class="bg-danger">Le serveur iEco est indisponible.</p>');
        });
}

function ajaxPersistChoix(){
	
	var choixOptions = [] ;
	var choixOptionnels = [];
	var isErasmus;
	
	$("#options li").each(function(index) {
		var id = $( this ).attr('id');
		choixOptions.push(id);
	});
	
	$("#optionnels li").each(function(index) {
		if($( this ).hasClass('selectedCoursOptionnel')){
			choixOptionnels.push('true');
		} else {
			choixOptionnels.push('false');
		}
	});
	
	if($('input[name=erasmus]:checked').val() == "Y"){
		isErasmus = true;
	} else {
		isErasmus = false;
	}
	
	$.ajax({
        url: "http://localhost:8080/ieco/api.html",
        type: "post",
        data: {operation : "persistChoix",inputChoix : choixOptions.join(","), inputInscriptions : choixOptionnels.join(","), estErasmus : isErasmus},
        dataType: "json",
        accepts: {
            "json": "application/json"
        },
        async: true
    })
    .success(function(response) {
		if(response.success){
			$('#boutonSauverChoix').before('<p id="successMessage" class="bg-success">Votre encodage a été enregistré avec succès.</p>');
		} else {
			$('#boutonSauverChoix').before('<p id="errorMessage" class="bg-danger">'+response.message+'</p>');	
		}
			
    })
    .error(function(request, error) {
        $('#boutonSauverChoix').before('<p id="errorMessage" class="bg-danger">Le serveur iEco est indisponible.</p>');
    });
}

